
package com.dhcc.bpm.modules.orga.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.bpm.modules.common.vo.SelectVo;
import com.dhcc.bpm.modules.log.vo.OrgaRankVo;
import com.dhcc.bpm.modules.orga.entity.Orga;
import com.dhcc.bpm.modules.orga.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName OrgaMapper
 * @Description 机构信息表 Mapper 接口
 * @Author daina
 * @Date 2020/2/24 19:25
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
public interface OrgaMapper extends BaseMapper<Orga> {

	/**
	 * @Description 自定义分页
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param page
	 * @param orga
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
	List<OrgaVO> selectOrgaPage(IPage<OrgaVO> page, OrgaVO orga);


	/**
	 * @Description 查询机构列表
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param page
	 * @param orga
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
	List<OrgaVO> selectControllerOrga(IPage<OrgaVO> page, OrgaVO orga);

	/**
	 * @Description 查询未分配的机构列表
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param page
	 * @param orga
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
    List<OrgaVO> selectUnControllerOrgaList(IPage<OrgaVO> page, OrgaVO orga);

	/**
	 * @Description 查询未分配的网关机构列表
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param page
	 * @param orga
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
	List<OrgaVO> UnControllerOrgaGateList(IPage<OrgaVO> page, OrgaVO orga);
	/**
	 * @Description 根据查询机构列表
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param opcProductId
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
	List<OrgaVO> selectOrgaByProductId(Long opcProductId);

	/**
	 * @Description api 下已订阅机构
	 * @Author daina
	 * @Date 10:05 2020/2/25
	 * @param page
	 * @param orga
	 * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
	 **/
    List<OrgaVO> apiList(IPage<OrgaVO> page, OrgaVO orga);

    /**
     * @Description 变更机构查询
     * @Author sjm
     * @Date 13:25 2020/2/25 0025
     * @param page
     * @param orga
     * @return java.util.List<com.dhcc.bpm.modules.orga.vo.OrgaVO>
     **/
    List<OrgaVO> changeList(IPage<OrgaVO> page, OrgaVO orga);

    /**
     * @Description 查询机构信息
     * @Author sjm
     * @Date 21:34 2020/2/25 0025
     * @param id
     * @return com.dhcc.bpm.modules.orga.entity.Orga
     **/
	OrgaInfoVo selectOrgaInfo(Long id);

	/**
	 * @Description 根据orage_code查询
	 * @Author daina
	 * @Date 11:59 2020/3/16
	 * @param orgaCard
	 * @return com.dhcc.bpm.modules.orga.entity.Orga
	 **/
	Orga selectByOrgaCode(String orgaCard);

    /**
     * @Description 查询注册联系人
     * @Author sjm
     * @Date 21:46 2020/2/25 0025
     * @param id
     * @return com.dhcc.bpm.modules.orga.entity.Orga
     **/
	OrgaManVo selectMan(Long id);

	/**
	 * @Description 查询注册联系人
	 * @Author sjm
	 * @Date 21:52 2020/2/25 0025
	 * @param id
	 * @return com.dhcc.bpm.modules.orga.entity.Orga
	 **/
	OrgaOtherManVo selectOtherMan(Long id);

	/**
	 * @Description 查询变更后机构信息
	 * @Author sjm
	 * @Date 9:15 2020/2/27 0027
	 * @param id
	 * @return com.dhcc.bpm.modules.orga.vo.OrgaInfoNewVo
	 **/
    OrgaInfoNewVo selectOrgaInfoNew(Long id);

    /**
     * @Description 查询变更后注册联系人
     * @Author sjm
     * @Date 9:19 2020/2/27 0027
     * @param id
     * @return com.dhcc.bpm.modules.orga.vo.OrgaManNewVo
     **/
	OrgaManNewVo selectManNew(Long id);

	/**
	 * @Description 查询变更后其他注册联系人
	 * @Author sjm
	 * @Date 9:21 2020/2/27 0027
	 * @param id
	 * @return com.dhcc.bpm.modules.orga.vo.OrgaOtherManNewVo
	 **/
	OrgaOtherManNewVo selectOtherManNew(Long id);

	/**
	 * @Description 查询环境机构
	 * @Author sjm
	 * @Date 13:12 2020/3/6 0006
	 * @param id
	 * @return com.dhcc.bpm.modules.orga.vo.OrgaTestVo
	 **/
    OrgaTestVo selectOrgaTest(Long id);

	/**
	 * @Description TODO
	 * @Author Mdd
	 * @Date 2020/3/20 11:43
	 * @param
	 * @return int
	 **/
	int countOrga();

	/**
	 * @Description 变更未审批数量
	 * @Author xiafayu
	 * @Date 2020/4/10 15:29
	 * @param parentId
	 * @return int
	 * @throws
	 **/
	int changeNum(Long parentId);

	/**
	 * @Description 统计每天报表
	 * @Author xiafayu
	 * @Date 2020/8/25 11:42
	 * @param accessTime
	 * @return
	 * @throws
	 **/
	List<Orga> getOrgaList(String accessTime);

	/**
	 * @Description 根据用户id查询机构信息
	 * @Author xiafayu
	 * @Date 2020/4/10 15:29
	 * @param opcUserId
	 * @return Orga
	 **/
	Orga findOrgaByUserId(@Param("opcUserId") Long opcUserId);

	/**
	 * @Description 根据部门id查询机构信息
	 * @Author xiafayu
	 * @Date 2020/4/10 15:29
	 * @param deptId
	 * @return Orga
	 **/
	Orga findOrgaByDeptId(@Param("deptId") String deptId);

	/**
	 * @Description 查询
	 * @Author daina
	 * @Date 15:49 2020/2/25
	 * @param
	 * @return java.util.List<com.dhcc.bpm.modules.common.vo.SelectVo>
	 **/
	List<SelectVo> selectByOrgaName();
	boolean deleteIdAndParentId(@Param("ids") List<Long> ids);
	List<Orga> findByPId(@Param("pid") String pid);
	OrgaVO selectDetail(Orga orga);

	int deleteByUserId(@Param("userId") Long userId);

	List<OrgaRankVo> queryList(IPage<OrgaRankVo> page, OrgaRankVo apiRank);

}
